﻿using System;
using System.Globalization;
using System.Web;
using DevMaker.SIC.Dao.Business;
using DevMaker.SIC.Model;


namespace WebApplication1 {
    public partial class CierresHistoricos : BasePage {

        readonly TurnoBussiness _turnoBussiness = new TurnoBussiness();
        protected void Page_Load(object sender, EventArgs e) {
            var fechaInicio = DateTime.Now.AddDays(-7);
            var fechaTermino = DateTime.Now;
            var dtfi = new DateTimeFormatInfo { ShortDatePattern = "dd/MM/yyyy", DateSeparator = "/" };

            if (!String.IsNullOrEmpty(Request.Form["fecha_inicio"]))
                fechaInicio = Convert.ToDateTime(Request.Form["fecha_inicio"], dtfi);

            if (!String.IsNullOrEmpty(Request.Form["fecha_termino"]))
                fechaTermino = Convert.ToDateTime(Request.Form["fecha_termino"], dtfi);

            AttributesTemplate.Add("fecha_inicio", fechaInicio.ToString("dd/MM/yyyy"));
            AttributesTemplate.Add("fecha_termino", fechaTermino.ToString("dd/MM/yyyy"));

            var mostrarpaso1 = false;
            var mostrarpaso2 = false;
            var mostrarpaso3 = false;

            if (Request.Form["mostrarPaso"] == null || Request.Form["mostrarPaso"] == "1")
                mostrarpaso1 = true;

            if (Request.Form["mostrarPaso"] == "2")
                mostrarpaso2 = true;

            if (Request.Form["mostrarPaso"] == "3")
                mostrarpaso3 = true;
            if (mostrarpaso1) {
                var txtBuscar = Request.Form["txtbuscar"];


                var turnos = _turnoBussiness.ObtieneTurnosCerradosPorFecha(fechaInicio, fechaTermino);

                if (txtBuscar != null)
                    turnos =
                        turnos.FindAll(
                            foo =>
                            foo.Cajero.NombreCompleto.ToUpper().Contains(txtBuscar.ToUpper()) ||
                            foo.PuntoVenta.Nombre.ToUpper().Contains(txtBuscar.ToUpper()));
                AttributesTemplate.Add("turnos", turnos);
            }

            if (Request.Form["idTurno"] != null && Request.Form["idTurno"] != "") {
                var turno = _turnoBussiness.ObtieneTurnoPorId(Convert.ToInt32(Request.Form["idTurno"]));
                AttributesTemplate.Add("turno", turno);
                turno.Sucursal = Session["sucursal"] as Sucursal;
                var tableHTML = turno.GenereteHTMLTableForReporteCierre();

                AttributesTemplate.Add("tableHTML", tableHTML);
                if (Request.Form["nuevoComentario"] != null) {
                    var observacion = new Observacion();
                    observacion.Comentario = Request.Form["comentario"];
                    observacion.Usuario = Session["usuarioConectado"] as Usuario;
                    new ObservacionBussiness().Crear(turno, observacion);
                }
                turno.Observaciones = new ObservacionBussiness().ObtienePorTurno(turno);
                foreach (var o in turno.Observaciones) {
                    o.Comentario = HttpUtility.HtmlEncode(o.Comentario);
                    o.Comentario = o.Comentario.Replace(Environment.NewLine, "<br/>");
                }
            }
            AttributesTemplate.Add("txtbuscar", Request.Form["txtbuscar"]);
            AttributesTemplate.Add("mostrarPaso1", mostrarpaso1);
            AttributesTemplate.Add("mostrarPaso2", mostrarpaso2);
            AttributesTemplate.Add("mostrarPaso3", mostrarpaso3);
        }

        public override string TemplateName {
            get { return "CierresHistoricos"; }
        }
    }
}
